package concesionaria;

import javax.swing.JInternalFrame;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 *
 * @author Guillermo
 * @author Matias
 * 
 */
public class VentanaAutosMasVendidos extends JInternalFrame implements ActionListener {

    static int openFrameCount = 0;
    static final int ventanaNro = 100 * 4;
    static final int xOffset = ventanaNro + 30, yOffset = 30;
    JLabel lano;
    JTextField ano;
    JButton listo;
    JPanel panel;
    String consulta;
    private ModeloTablaResultados2 modeloTabla;
    private JTextArea areaConsulta;
    // crear objeto ModeloTablaResultados y GUI

    public VentanaAutosMasVendidos() {
        super("Autos Mas Vendidos",
                true, //resizable
                true, //closable
                true, //maximizable
                true);//iconifiable
        lano = new JLabel("Ingrese Año a buscar");
        ano = new JTextField();
        listo = new JButton("Aceptar");
        listo.setActionCommand("aceptar");
        listo.addActionListener(this);
        panel = new JPanel();
        panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
        panel.setLayout(new BoxLayout(panel,
                BoxLayout.PAGE_AXIS));
        panel.add(lano);
        panel.add(ano);
        panel.add(listo);
        setContentPane(panel);

        pack();
        openFrameCount++;
        setLocation(ventanaNro + ((xOffset - (xOffset - 30)) * openFrameCount), yOffset * openFrameCount);

    }

    public void DibujarTabla() {
        // crear objeto ModeloTablaResultados y mostrar tabla de la base de datos
        try {
            // crear objeto TableModel para los resultados del a consulta SELECT * FROM autores
            modeloTabla = new ModeloTablaResultados2(
                    consulta);
            JTable tablaResultados = new JTable(modeloTabla);
            panel.removeAll();

            panel.add(new JScrollPane(tablaResultados), BorderLayout.CENTER);
            // establecer tamaño de ventana y mostrarla en pantalla
            pack();
            setVisible(true);
        } // fin de bloque try
        // atrapar la excepción ClassNotFoundException lanzada por el
        // objeto ModeloTablaResultados si no se encuentra el controlador de la base de datos
        catch (ClassNotFoundException claseNoEncontrada) {
            JOptionPane.showMessageDialog(null,
                    "No se encontro el controlador de la base de datos", "No se encontro el controlador",
                    JOptionPane.ERROR_MESSAGE);
            System.exit(1);   // terminar la aplicación
        } // fin de bloque catch
        // atrapar la excepción SQLException lanzada por el objeto ModeloTablaResultados
        // si ocurren problemas al establecer la conexión a la base de datos
        // y realizar la consulta en la misma
        catch (SQLException excepcionSQL) {
            JOptionPane.showMessageDialog(null, excepcionSQL.getMessage(),
                    "Error en la base de datos", JOptionPane.ERROR_MESSAGE);
            // asegurar que la conexión a la base de datos esté cerrada
            modeloTabla.desconectarDeLaBaseDeDatos();
            System.exit(1);   // terminar la aplicación
        }
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if ("aceptar".equals(e.getActionCommand())) {
            consulta = "SELECT   `marca`  `Marca`, `modelo` `Modelo`, count(*) `Cantidad vendidos`"
                    + "FROM `auto_inst` ai, `auto` au, `entrega_auto` ea WHERE `id_iauto`=ai.`ID` AND "
                    + "ai.`ID_auto`= au.`ID` AND `fecha_entrega` LIKE '%" + ano.getText() + "%' "
                    + " group by marca, modelo ORDER BY `Cantidad vendidos` desc";
            DibujarTabla();

        }
    }
}
